home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / programm.ing / m2posx10.zoo / m2posix.10 / doc / neu < prev   
Encoding:
Text File  |  1994-01-04  |  20.4 KB  |  351 lines

  1. M2POSIX-10: 01-Jan-94
  2.   o 'lib' ist nicht mehr von 'DosSystem' und 'OSCALLS' abhängig.
  3.   o 'timeT' ist jetzt nach außen hin vom Typ UNSIGNEDLONG, damit es ohne
  4.     Probleme als Funktionsresultat geliefert werden kann.
  5.   o 'SsizeMax' und 'ClkTck' wurden von 'sys' nach 'types' transportiert.
  6.   o "term.tcgetpgrp()": Wenn das Terminal zu keiner Prozessgruppe gehört,
  7.     wird ein Fehler gemeldet.
  8.   o "file.open()": Ist jetzt weitgehend nach dem MiNTLib-open gestaltet,
  9.     wodurch unter MiNT mehr Aufgaben von MiNT direkt übernommen werden.
  10.     Unter MiNT wird nun tatsächlich die kleinste freie Kennung verwendet,
  11.     nicht die kleinste, die größer als fünf ist.
  12.     Ausserdem wurde noch ein Fehler der alten Implementierung entfernt,
  13.     und übersichtlicher ist es auch geworden...
  14.   o 'DosSupport': Die Auswertung von UNIXMODE im Modulrumpf hatte noch
  15.     Fehler.
  16.   o "file.fcntl()": Unter TOS funktionierte fDUPFD nicht, und bei fSETLK
  17.     fehlte ein RETURN.
  18.   o Unterstützung für HM2_OLD (Versionen < 5.1) eingestellt.
  19.   o 'jump': Bei TDI wird auch Register A5 gerettet.
  20.   o "term.isatty()": INTEGER statt BOOLEAN als Funktionswert.
  21.   o PORTAB.M2H: Neues Konfigurationsmakro __REG_VARS__, um Registervariablen
  22.     zentral (de)aktivieren zu können.
  23.   o Für jede Datei wird (unter TOS) in 'DosSupport' ein Pseudo-
  24.     Dateibeschreibungsblock geführt, der vor allem die beim 'open'
  25.     angegebenen Attribute enthält. Dadurch können unter TOS mit "fcntl()""
  26.     Flags abgefragt und gesetzt werden, außerdem wird das O_APPEND-Flag
  27.     von "write()" und das FD_CLOEXEC-Flag von "spawn*/exec*()" unterstützt.
  28.   o 'tfile': Tests für O_APPEND und "fcntl()".
  29.   o 'jump': Die bis jetzt nicht implementierten Prozeduren "sig*()" mit
  30.     Prozedurrahmen, da sonst bei einem irrtümlichen Aufruf kein Rück-
  31.     sprung erfolgt. Außerdem konnte es beim optimierten Linken von 'TLib'
  32.     mit HM2 zum Absturz beim Aufruf des Programms kommen.
  33.  
  34. M2POSIX-09: 07-Nov-93
  35.   o "dir.getcwd()": Unter TOS wird intern immer ein Puffer von mindestens
  36.     PATHMAX Zeichen bereitgestellt, da 'Dgetpath' keine Maximallänge
  37.     beachtet.
  38.   o "DosSupport.UnixToDos()": Die Umsetzung von Pfadnamen der Form /dev/xxx
  39.     funktionierte nicht. Außerdem wurde zu ``früh'' gemeldet, daß der Platz im
  40.     Dos-Pfad nicht ausreicht. Durch eine interne Umstellung wird der *IX-Pfad
  41.     nicht mehr verändert, sodaß er jetzt ein VAR-Parameter ist, und weniger
  42.     Stack ``verbraucht'' wird. Der Puffer für die Ermittlung des aktuellen
  43.     Verzeichnisses wird nur noch angelegt, wenn nötig -- das spart auch Stack.
  44.     Die Umwandlung von '/' in '\' wird jetzt früher vorgenommen, sodaß z.B.
  45.     neben /pipe/ auch \pipe\ umgesetzt wird.
  46.   o Das Makro __MINT__ wird nicht mehr beachtet; wenn MiNT vorhanden ist,
  47.     werden immer dessen Systemaufrufe benutzt. Dadurch wird die Funktionalität
  48.     nicht eingeschränkt, aber der Quellcode wird übersichtlicher.
  49.   o 'file': "utime()": Wenn für 'modtime' Null übergeben wird, wird dies
  50.     unter MiNT auch als NULL-Pointer an das Dateisystem weitergereicht, damit
  51.     es selbst die aktuellen Zeiten einsetzen kann. Bei Verzeichnissen wird
  52.     kein Fehler mehr gemeldet, es wird einfach nix getan.
  53.     "dup()", "dup2()": Das 'FdCloExec'-Flag der neuen Dateikennung wird
  54.     gelöscht; die Dateien bleiben also bei einem Unterprozeßstart geöffnet.
  55.     Bei "dup()" ist unter MiNT die kleinstmögliche neue Kennung nicht mehr 6
  56.     sondern 0.
  57.  
  58. M2POSIX-08: 10-Okt-93
  59.   o In den Definitionsmodulen wird genauer auf das Verhalten der Funktionen
  60.     unter TOS und unter MiNT eingegangen.
  61.   o Die ``C''-Stringfunktionen aus 'pSTRING' herausgenommen und in das neue
  62.     Modul 'cstr' transportiert.
  63.   o "strerror()" von 'lib' nach 'cstr' transportiert, da "strerror()" zwar
  64.     keinen ``C''-String liefert, aber trotzdem zu den "str*()"-Funktionen
  65.     gehört.
  66.   o Modul 'CTYPE' in 'ctype' umbenannt.
  67.   o 'cstr': Neue Funktionen: "strncat()", "strcmp()", "strncmp()", "strchr()",
  68.     "strrchr()" und "strstr()".
  69.   o Laengenangaben in 'cstr' und 'MEMBLK' nicht mehr als CARDINAL oder
  70.     UNSIGNEDLONG, sondern als 'sizeT'.
  71.   o "DosSystem.FPU()": Neue Funktion + zugehoerige Typen.
  72.   o Neues Modul 'jump', in das "lib.set/longjmp()" und "sig.sigset/longjmp()"
  73.     transportiert wurden. Außerdem wird "set/longjmp()" jetzt nicht mehr von
  74.     ANSIC, sondern von POSIX1 reexportiert.
  75.   o 'DosFile' in 'DosSupport' umbenannt. In Zukunft gehen alle M2POSIX-
  76.     spezifischen Hilfsfunktionen, nicht beschränkt auf Dateifunktionen, in
  77.     dieses Modul, damit 'DosSystem' allgemein verwendbar bleibt.
  78.   o 'MEMBLK': "memalloc()", "memdealloc()": Neue Funktionen für Speicherre-
  79.     servierung auf dem Stack.
  80.   o "dir.readdir()": Unter TOS werden die Dateinamen in Kleinbuchstaben
  81.     umgewandelt.
  82.   o 'ANSIC': Die Prozedurvariablen für "main()" und "getenv()" wurden nicht
  83.     initialisiert.
  84.   o "DosSupport.UnixToDos()": Verarbeitung von "." und ".." im Wurzelver-
  85.     zeichnis erweitert.
  86.   o 'lib': Tests für "MEMBLK.mem[de]alloc()".
  87.   o "OSCALLS.Supexec()": Die auszuführende Prozedur ist jetzt vom Typ PROC,
  88.     da die Rückgabe eines Funktionswertes nur funktioniert, wenn dafür
  89.     Register D0 verwendet wird (und der Stack unangetastet bleibt).
  90.   o 'DosSystem': Im Hinblick auf Mag!X-Versionen 2.x wurden sämtliche
  91.     'Super'-Konstruktionen durch 'Supexec'-Aufrufe ersetzt (laut Handbuch
  92.     sollen'Super'-Aufrufe nicht mehr benutzt werden).
  93.   o 'proc': Testweise Implementierung von "vfork()". Testweise deswegen, weil
  94.     ich nicht weiß, ob die Prozedur unter allen Bedingungen funktioniert --
  95.     mit Megamax-Modula MM2 funktioniert sie jedenfalls unter keiner
  96.     Bedingung... Vor Anwendung unbedingt den Kommentar im Definitionsmodul
  97.     lesen!
  98.   o Überall wo Pfadnamen als Ein- oder Ausgabeparameter vorkommen, wird jetzt
  99.     für die Konvertierung nach bzw. aus dem Dos-Format der Platz dynamisch
  100.     mit "memalloc()" auf dem Stack angelegt. Das bedeutet zum einen, daß
  101.     nur noch soviel Stack ``verbraucht'' wird wie nötig, zum anderen aber,
  102.     daß ``beliebig'' lange Pfadnamen verwendet werden können! Damit besteht
  103.     bei den meisten Funktionen keine (interne) Beschränkung der Pfadlänge
  104.     mehr! Da die Änderungen jedoch umfangreicher waren, als ich gedacht
  105.     hatte und ich auch keine Lust hatte, nochmal alles zu testen, ist es
  106.     wahrscheinlich, daß ein paar Bugs hinzugekommen sind.
  107.  
  108. M2POSIX-07: 14-Aug-93
  109.   o "DosSystem.GetCookie()": Neue Funktion.
  110.   o 'pSTRING': Neue Funktionen "strcat()" und "strpbrk()".
  111.   o "lib.longjmp()": Unter MiNT wird ein 'Psigreturn' ausgeführt.
  112.   o "file.open()": Unterstützung von 'O_NOCTTY' unter MiNT.
  113.   o Modul 'err' in 'e' umbenannt, da bei HM2 ein gleichnamiges Modul
  114.     in der GEMplus-Bibliothek existiert.
  115.   o 'DosFile': Neue Variable 'BINIO', die angibt, ob in der Environment-
  116.     Variablen UNIXMODE die Option 'b' (binary) gesetzt ist.
  117.   o "DosFile.DosToUnix()": Die Umsetzung von Pfadnamen ohne Laufwerks-
  118.     angabe funktionierte nicht. In einem Fall wurde die Laenge des
  119.     Ergebnispfades falsch berechnet. ROOTDIR wird jetzt ausgewertet, um
  120.     die Startadressen der Pfade mehr *IX-like zu gestalten.
  121.   o "file.utime()": Datum und Zeit waren vertauscht, wenn der übergebene
  122.     Parameter statt der aktuellen Zeit benutzt werden sollte.
  123.     Unter MiNT werden bei einem entsprechenden Dateisystem 'actime' und
  124.     'modtime' getrennt gesetzt (z.B. Minix-FS 0.60pl6).
  125.   o "file.ftruncate()": Neue Funktion. Läuft nur mit entsprechendem
  126.     Dateisystem (z.B. Minix-FS 0.60pl6).
  127.   o "pSTRING.AssignM2ToC()": Schließt ähnlich wie "strncat()" den Ergebnis-
  128.     string nur noch mit einem Nullbyte ab, wenn der Quellstring kürzer als
  129.     die angegebene Maximalgröße ist.
  130.   o "dir.readlink()": mehr POSIX-like: das Ergebnis wird nicht mehr mit
  131.     einem Nullbyte abgeschlossen, stattdessen MUß jetzt das Funktions-
  132.     ergebnis fuer die Laenge herangezogen werden.
  133.   o "term.ttyname()": Neue Funktion.
  134.   o "term.ctermid()": Neue Funktion.
  135.   o "MEMBLK.memmove()": Ziel- und Quellparameter waren vertauscht.
  136.   o In "DosFile.UnixToDos()" und "CompletePath()" wird jetzt wieder auf
  137.     die Version von MiNT abgefragt und 'Dgetcwd' nur benutzt, falls
  138.     mindestens MiNT 0.96 vorhanden ist, sonst wird 'Dgetpath' verwendet.
  139.     dadurch kann M2POSIX jetzt auch wieder mit Versionen unter 0.96 benutzt
  140.     werden, nur laufen dann eben manche Funktionen, wie z.B. "waitpid()"
  141.     nicht. Aus diesem Grund entfaellt auch die Sicherheitsabfrage in
  142.     'DosSystem', die zum Programmabruch fuehrte. Ich empfehle aber trotzdem,
  143.     nur die jeweils neueste MiNT-Version einzusetzen!
  144.   o "DosFile.DosToUnix()": Es wird zusätzlich die Länge des DOS-Pfades
  145.     geliefert. Somit kann leicht ermittelt werden, um wieviele Zeichen
  146.     der *IX-Pfad länger oder kürzer als der DOS-Pfad ist.
  147.   o "file.lstat()": Bei symbolischen Links wird jetzt im st.stSize-Feld
  148.     die Länge des Pfades geliefert, wie sie nach Umwandlung durch
  149.     "DosToUnix()" wäre, und durch "readlink()" geliefert wird (+ Nullbyte).
  150.   o Die Definitionen fuer ``C''-Strings und die Konstante EOS fuer M2-
  151.     Strings wurden von 'pSTRING' nach 'types'transportiert.
  152.   o "MEMBLK.memchr()": Neue Funktion.
  153.   o "MEMBLK.memcmp()": Neue Funktion.
  154.   o 'tlib': Tests fuer "memchr()" und "memcmp()".
  155.   o Die Funktion "fnmatch()" wurde von 'lib' in das neue Modul POSIX2
  156.     verlegt. Damit ist zwar "fnmatch()" die einzige Funktion im Modul, aber
  157.     vielleicht kommen ja irgendwann weitere hinzu.
  158.   o 'cmdline': ARGV^[ARGC] wurde nicht immer auf NULL gesetzt.
  159.  
  160. M2POSIX-06: 30-Jun-93
  161.   o In 'pSTRING' weitere String-Parameter als REF-Parameter deklariert.
  162.     Weitere Variablen als Registervariablen, Registervariablen auch in
  163.     anderen Modulen häufiger.
  164.   o 'ShowCMD': Die Basepage-Kommandozeile wird zusätzlich ausgegeben.
  165.   o 'cmdline': Die ARGV-Erweiterung für leere Argumente wird unterstützt.
  166.     Die Modulinitialisierung wurde in eine Prozedur gepackt, sodaß häufig
  167.     benutzte Variablen als Registervariablen deklariert werden konnten.
  168.   o "proc.exec*/spawn*()": Die ARGV-Erweiterung für leere Argumente wird
  169.     unterstützt.
  170.   o 'spawn' & 'forkexec': Es werden auch leere Argumente zum Testen
  171.     verwendet.
  172.   o 'dir': "readdir()"/DirentRec: Die Dateinamen sind nicht mehr in der
  173.     Länge begrenzt, da nur noch ein Zeiger auf den eigentlichen Dateinamen
  174.     geliefert wird, der bis zum nächsten "readdir()" auf das gleiche
  175.     Verzeichnis gültig bleibt. Der Speicher für den Dateinamen wird beim
  176.     "opendir()" angefordert und beim "closedir()" wieder freigegeben.
  177.   o 'PORTAB': Neue Typen: (UN)SIGNED für die jeweils größten verfügbaren
  178.     Ganzzahltypen, entsprechend ISO-CARDINAL/INTEGER, und jeweilige Maximal/
  179.     Minimalwerte als Konstanten.
  180.   o 'CTYPE': Alle Funktionen in Kleinbuchstaben (entsprechend ``C'').
  181.   o "pSTRING.strcpy()": Neue Funktion.
  182.   o 'POSIX' umbenannt in 'POSIX1'. Es werden nur noch Funktionen aufge-
  183.     nommen, die erstens aus POSIX.1 stammen (damit fällt z.B. "fnmatch()"
  184.     raus, da POSIX.2), und zweitens nicht gleichzeitig Ansi-C-Bibliotheks-
  185.     funktionen sind. Gleichzeitig kommen die Ansi-C-Funktionen in ein neues
  186.     Modul ANSIC, in das zusätzlich auch Ansi-C-Funktionen aufgenommen werden,
  187.     die nicht gleichzeitig POSIX-Funktionen sind. Auf diese Weise wird eine
  188.     gewisse Trennung zwischen ``System''- und ``Bibliotheks''-Funktionen
  189.     erreicht, obwohl diese Unterscheidung von POSIX nicht getroffen wird.
  190.   o OSCALLS.M2H: BIOS-Aufrufe integriert.
  191.   o "file.fcntl()": F_SETLK wird auch ohne MiNT im begrenztem Maße unter-
  192.     stützt, wenn durch eine entsprechende GEMDOS-Erweiterung der 'Flock'-
  193.     Aufruf existiert.
  194.   o Neues Modul 'pSTORAGE'. Das Modul stammt von Ulrich Kaisers GEM-
  195.     Bibliothek ``crystal'' (leicht verändert).
  196.   o "pSTRING.strncpy()": Neue Funktion.
  197.   o "file.fcntl()": Die GEMDOS-Fehler 'eLOCKED' und 'eNSLOCK' werden auf
  198.     'EACCES' abgebildet.
  199.   o 'DosSystem': Neue Funktionen "Machine()" und "CPU()". 'TDosSystem'
  200.     gibt auch die Werte dieser beiden Funktionen aus.
  201.   o "sys.uname()": Neue Funktion. 'tsys' gibt auch Informationen dieser
  202.     Funktion aus.
  203.   o 'term': Neues Modul für POSIX-Terminalfunktionen. Die meisten Funktionen
  204.     sind (noch) nicht implementiert, das Modul legt hauptsächlich erstmal
  205.     die neuen Bezeichner fest. Ob und wann Funktionen tatsächlich implemen-
  206.     tiert werden, weiß ich nicht.
  207.   o "isatty()" von 'file' nach 'term' transportiert.
  208.   o 'sig': Neues Modul für POSIX-Signalfunktionen. Es gilt das gleiche wie
  209.     bei 'term'.
  210.   o 'POSIX1' und POSIX_ID.M2H um die neuen Bezeichner erweitert.
  211.   o Der GNU-C-Präprozessor wird jetzt mitgeliefert.
  212.  
  213. M2POSIX-05: 07-Jun-93
  214.   o OSCALLS.M2H: Bessere Ausnutzung der von den Compilern gebotenen
  215.     Features für Betriebssystemaufrufe.
  216.   o 'MEMBLK': Neues Modul mit den von 'lib' ausgelagerten Funktionen
  217.     "bcopy()","bswap()" und "bzero()" für die Bearbeitung von
  218.     Speicherbereichen. Dadurch ist das Modul nicht mehr auf M2POSIX
  219.     beschränkt.
  220.   o 'MEMBLK': "bcopy()" und "bswap()" umbenannt in "memmove()" und "memswap()".
  221.     "bzero()" durch universelleres "memset()" ersetzt.
  222.   o 'PORTAB.M2H': Makro für Registervariable definiert. In einigen Modulen
  223.     (z.B. 'pSTRING') Indexvariablen als Registervariablen deklariert.
  224.   o !!! ACHTUNG: !!! ES WIRD JETZT NICHT MEHR AUF UNTERSCHIEDLICHE MiNT-
  225.     VERSIONEN IM PROGRAMMTEXT ABGEFRAGT, SONDERN NUR NOCH, OB MiNT VORHANDEN
  226.     IST ODER NICHT. DA IM FALLE DES VORHANDENSEINS VON MiNT AUCH NEUERE
  227.     MiNT-AUFRUFE BENUTZT WERDEN (Z.B. PWAITPID UND DGETCWD), MUSS, FALLS
  228.     MiNT ÜBERHAUPT EINGESETZT WIRD, MINDESTENS VERSION 0.96 BENUTZT WERDEN!!
  229.     MIT VERSION 0.95 (ODER KLEINER) LÄUFTS NICHT MEHR!!
  230.   o "file.fcntl()": Neue Funktion.
  231.   o 'tlib': Neues Modul zum Testen von Funktionen aus 'lib' und 'MEMBLK'.
  232.   o "file.open()": In der Beschreibung der Funktion im Definitionsmodul wird
  233.     auf den Unterschied zwischen Datei, Dateibeschreibungsblock und Datei-
  234.     kennung eingegangen. Die einzelnen Konstanten Im Aufzählungstyp
  235.     'OpenMode' sind auf die Positionen der entsprechenden Flags im MiNT-Fopen
  236.     angepaßt (wegen "fcntl()").
  237.   o 'types': POSIX-Mindestwerte (PosixPathMax, usw.) als Konstanten definiert.
  238.     Dokumentiert, daß NAMEMAX und PATHMAX bibliotheksinterne Größen sind -
  239.     sie wurden deshalb auch aus dem Modul POSIX entfernt. Die tatsächlich vom
  240.     Dateisystem unterstützten Größen können mit "sys.path/sysconf()" erfragt
  241.     werden.
  242.   o 'DosSystem': Bei der Modulinitialisierung wird geprüft, ob eine MiNT-
  243.     Version kleiner als 0.96 benutzt wird; wenn ja, wird das Programm mit
  244.     einer Fehlermeldung abgebrochen.
  245.   o "file.open()": Unter MiNT wird eine geöffnete Datei nicht mehr auto-
  246.     matisch bei Ausführung von "exec*()" geschlossen ('FdCloExec'-Flag
  247.     wird gelöscht).
  248.   o "proc.tfork()": Neue Funktion.
  249.   o "proc.SetStacksize()": Neue Funktion.
  250.   o 'tthread': Neues Modul zum Testen von "tfork()".
  251.  
  252. M2POSIX-04: 13-Mai-93
  253.   o Modul 'lib': Funktionen "bcopy()","bswap()","bzero()": Die Register
  254.     wurden erst gerettet, NACHDEM sie bereits verändert waren...
  255.     Zum Glück hatte das keine Auswirkungen auf die derzeit unterstützten
  256.     Compiler.
  257.   o Modul 'lib': Funktion "fnmatch()": Funktionswert INTEGER statt BOOLEAN,
  258.     Konstante FNMNoMatch.
  259.   o Neues Modul PORTAB. Ersetzt das alte M2TYPES. Das Modul stammt von
  260.     Ulrich Kaisers GEM-Bibliothek ``crystal'' (leicht verändert).
  261.   o Datei PORTAB.M2H: Die Abfrage auf die unterschiedlichen Compiler
  262.     geschieht jetzt mit #if (defined ...) oder #ifdef anstatt mit #if ...,
  263.     d.h. das entsprechende Makro ist nur für den jeweilig benutzten
  264.     Compiler definiert, sonst nicht (Kompatibilität mit ``crystal'').
  265.     Ebenso werden nun die Konfigurationsmakros und die Betriebssystemmakros
  266.     als definiert oder undefiniert abgefragt.
  267.     Die restlichen Makros sind wie bisher entweder mit 0 oder Nicht-Null (1)
  268.     definiert (#if ...)
  269.   o Neues Modul OSCALLS: Die Betriebssystemaufrufe sind jetzt ``richtige''
  270.     M2-Prozeduren, keine Makros mehr. Das ist doch etwas robuster.
  271.   o "proc.spawnvp()"/"execvp()": Der Parameter für den Programmnamen wurde
  272.     verändert (Bei Compilern mit REF-Parametern). Das angegebene Programm
  273.     wurde u.U. nicht gefunden.
  274.   o "file.open()": Unterstützung von O_APPEND unter MiNT.
  275.   o "file.open()": bei O_TRUNC wird jetzt versucht, die Dateiattribute einer
  276.     vorhandenen Datei so weit wie möglich zu erhalten.
  277.   o "file.creat()": Die Funktion wird jetzt über "open()" implementiert,
  278.     wie im Definitionsmodul angegeben. Dadurch wird die neue Datei auch
  279.     explizit mit 'O_WRONLY' geöffnet, und zumindest MiNT verhindert dann
  280.     Lesezugriffe.
  281.   o Modul 'tfile': Wegen obiger Änderung wurde die fälschliche Benutzung von
  282.     "creat()" für eine Datei, von der auch gelesen wird, durch "open()"
  283.     ersetzt.
  284.   o Modul 'POSIX': weitere Konstanten und Typen aufgenommen, besonders die
  285.     Fehlerkonstanten aus 'err'. Leider lassen sich Variablen nicht
  286.     reexportieren, sodaß 'err.errno' und 'cmdline.environ' nicht aus
  287.     'POSIX' importiert werden können.
  288.   o Modul 'DosSystem': "GetBasepage()" und PID, PPID sind entfallen, dafür
  289.     gibt es die Variable BASEP und die Prozedur "DosPid()", die aus einer
  290.     Adresse (auf eine Basepage) eine Prozeßkennung errechnet.
  291.   o Aufgrund eines Compilerfehlers kam das Megamax-System nicht mit
  292.     __LONG_WHOLE__ zurecht. Als Abhilfe wird jetzt in sämtlichen Modulen
  293.     bei Feldindizierungen explizit mit 16-Bit-Ausdrücken gearbeitet.
  294.  
  295. M2POSIX-03: 17-Apr-93
  296.   o Datei PORTAB.M2H: Makros für Standardeinstellungen von Compileroptionen.
  297.     Konfigurierbar (16/32-Bit, Stack/Registerrückgabe, MiNT-Berücksichtigung)
  298.   o Modul 'proc': neue Funktion "setsid()". Funktion "setpgid()": mehr
  299.     POSIX-Verhalten bei Argumenten <= 0.
  300.   o Anpassung an Hänisch Compiler Version 5.x
  301.   o Modul 'lib': neue Funktionen "setjmp()"/"longjmp()".
  302.   o Neues Modul POSIX: Dieses Modul ist eine Zusammenfassung aller
  303.     POSIX-Funktionen, sodaß der Import aus einem einzigen Modul ausreicht.
  304.     Es wird dabei lediglich reexportiert, bzw. wo dies nicht möglich ist,
  305.     die Prozeduren als Variablen definiert, sodaß kein zusätzlicher
  306.     ``Wasserkopf'' entsteht.
  307.   o Neue Datei POSIX_ID.M2H: Diese Datei kann als Eingabe für den
  308.     Präprozessor benutzt werden, um die Original-POSIX-Bezeichner, die
  309.     für die Anpassung an (alte) M2-Compiler geändert werden mußten,
  310.     wiederherzustellen.
  311.   o Modul 'dir': Funktionen "opendir()", "readdir()", "rewinddir()" und
  312.     "closedir()": Seit MiNT 0.97 ist das von 'Dopendir' gelieferte Handle
  313.     als opak zu behandeln, d.h. es darf nur als Handle wieder an andere
  314.     Verzeichnis-Routinen übergeben, aber nicht dereferenziert werden, da
  315.     der Speicher für das Verzeichnis im geschützten Bereich
  316.     (bei ``Memory Protection'') liegt.
  317.     Dieselbe Änderung in der MiNTLib von pl24 auf pl25 war mir entgangen.
  318.   o Modul 'CTYPE': Funktion "TOCARD()" liefert jetzt bei einem Zeichen, das
  319.     nicht zwischen '0' und '9', bzw 'A'/'a' und 'Z'/'z' liegt, einen Wert
  320.     zurück, der größer als jeder mögliche gültige Wert ist, um Fehler-
  321.     erkennung zu ermöglichen. "TOLOWER()" und "TOUPPER()" vereinfacht.
  322.     "ISODIGIT()" rausgeschmissen.
  323.   o Modul 'types' in 'types' und 'M2TYPES' aufgespalten. Dadurch können
  324.     die Typen aus 'M2TYPES' auch in anderen Umgebungen als M2POSIX genutzt
  325.     werden.
  326.  
  327. M2POSIX-02: 17-Feb-93
  328.   o Die optionale Exportliste rausgeschmissen
  329.   o Anpassung an TDI.
  330.   o Modul 'forkexec': "waitpid()" statt "wait()" benutzen
  331.   o Modul 'lib': Das Retten der Register bei den Assemblerprozeduren
  332.     wird je nach Compiler mit Makros geregelt.
  333.   o Modul 'file': Funktion "utime()": statt 'actime' wird 'modtime'
  334.     ausgewertet, da bei GEMDOS das Datum bei lesendem Zugriff nicht
  335.     geändert wird.
  336.   o Modul 'dir': "getcwd()" und "readlink()": Parameter mehr POSIX-like.
  337.   o Modul 'DosFile': Funktion "DosToUnix()" liefert jetzt statt <done> die
  338.     Länge des ungekürzten Dateinamens. Bei Bedarf kann dieser mit der
  339.     max. Größe des Strings verglichen werden.
  340.   o Modul 'lib': Funktion "bswap()" exportiert (erleichtert das Testen).
  341.   o Modul 'pSTRING': Funktion "AssignM2ToC()" hat 'size'-Parameter.
  342.   o Modul 'pSTRING': neue Funktion "APPENDCHR()".
  343.   o an einigen Stellen ISO-Änderung: PACKEDSET statt SET bei Mengen, die
  344.     für Bits stehen.
  345.   o Modul 'types': Etwas gestrafft.
  346.   o Datei PORTAB.M2H: geändert & erweitert
  347.  
  348. M2POSIX-01: 25-Dez-92
  349.   o M2POSIX erstmalig zur Verbreitung freigegeben
  350.  
  351.